This invention relates to a method of decoding a sequence of interleaved codes formed by Reed-Solomon codes which belong to Bose-Chaudhuri-Hocquenghem (BCH) codes. Although the following description will be restricted to the Reed-Solomon codes by way of example, it should be noted throughout the instant specification that this invention is applicable to the other BCH codes.
It is a recent trend that such an interleaved code sequence is used to record an audio signal subjected to pulse code modulation (PCM), on a recording medium, such as a video tape, a magnetic disk, a compact disk, or the like. As will later be described with reference to a few figures of the accompanying drawing, the interleaved code sequence is produced from a sequence of data words in a predetermined manner. More particularly, each of several blocks is at first formed by dividing the data word sequence into a succession of primary sets and by adding each primary set to a primary check word determined by each primary set. Thereafter, the interleaved code sequence is produced by giving different delays to the data words and the first check code of each block to form a succession of secondary sets and by adding each of the secondary sets to a secondary check word determined by each secondary set. Each block and each interleaved code are usually formed by Reed-Solomon codes which are powerful against random errors. As a result, such an interleaved code sequence becomes strong against both random errors and burst errors, as is known in the art.
On decoding the interleaved code sequence, first and second error corrections are successively made by the use of reproductions of the secondary check word and the primary check word. Each of the first and the second error corrections is specified by a series of operations. In order to reproduce the primary check word, each block should be reconstructed from the interleaved code sequence. For this purpose, the interleaved code sequence is subjected to a plurality of delays to adjust the different delays given to the data words and the first check code.
The second error correction should be made after a series of operations is completed for the first error correction. Otherwise, there is the probability that the same data word will be corrected twice to be rendered into an error in the first and the second error corrections. Therefore, the second error correction should independently be carried out after the first error correction. As a result, it takes a long time to carry out the first and the second error corrections. In order to carry out such first and second error corrections within a short time, a complicated algorithm should be used.